#pragma once

#include "DAEFloat3.h"
class ObjMesh;
/**
* Creates a textured quad.
* @author Koen Samyn
*/
class QuadMesh
{
public:
	/**
	* Creates a new QuadMesh.
	* @param origin the origin of the mesh.
	* @param width the width of the mesh.
	* @param height the height of the mesh.
	*/
	QuadMesh(DAEFloat3 origin, float width, float height);
	/**
	* Destroys the QuadMesh object.
	*/
	virtual ~QuadMesh(void);
	/**
	* Returns the obj mesh that was created by this object.
	* @return the obj mesh that was created by this object.
	*/ 
	ObjMesh* GetObjMesh(){return m_pMesh;};
private:
	DAEFloat3 m_Origin;
	float m_Width;
	float m_Height;

	ObjMesh* m_pMesh;

	// -------------------------
	// Disabling default copy constructor and default assignment operator.
	// If you get a linker error from one of these functions, your class is internally trying to use them. This is
	// an error in your class, these declarations are deliberately made without implementation because they should never be used.
	// -------------------------
	QuadMesh(const QuadMesh& t);
	QuadMesh& operator=(const QuadMesh& t);
};

